import {
    config
} from './config'

const moment = require('../utils/moment');

const Status_Code = {
    "200": "成功",
    "400": "失败",
    "403": "权限不足",
    "1001": "活动不存在",
    "1002": "活动未开始",
    "1003": "活动已结束",
    "1004": "未参加活动",
    "1005": "活动请假出错",
    "1006": "活动发布失败",
    "1007": "活动岗位无空缺",
    "1008": "活动重复报名",
    "1009": "只有社团内的人才能参加活动",
    "1010": "活动签到出错",
    "1011": "活动风采错误",
    "1012": "活动岗位错误",
    "1013": "活动正在审核中",
    "1014": "活动删除出错",
    "2001": "志愿者不存在",
    "2002": "用户名或密码错误",
    "2003": "用户未登录",
    "2004": "志愿者黑名单错误",
    "2005": "用户已注册",
    "2006": "选举发布错误",
    "2007": "购买课程错误",
    "2008": "志愿者社团错误",
    "2009": "志愿者评论错误",
    "2010": "志愿者商品错误",
    "2011": "志愿者投票错误",
    "2012": "志愿者未注册",
    "3001": "课程不存在",
    "3002": "课程还未排课",
    "3003": "课程已经满员",
    "3004": "课程签到错误",
    "3005": "课程请假错误",
    "3006": "课程更新错误",
    "3007": "课程安排未找到",
    "3008": "课程安排还未开始",
    "4001": "社团不存在",
    "4002": "社团更新失败",
    "4003": "社团删除失败",
    "5001": "商品不存在",
    "5002": "礼品不存在",
    "5003": "商品存货不足",
    "5004": "商品删除出错",
    "5005": "商品订单错误",
}


// 定义一个HTTP请求类
class HTTP {

    // url接口路由，method传递请求方法，params传递请求参数，callback执行回调函数
    request(url, method, params, callback) {
        let _header
        if (
            url === '/activity/releaseactivity1' ||
            url === "/message/post" ||
            url === "/activityContent/post"
        ) {
            _header = {
                "content-type": "application/json"
            }
        } else {
            _header = {
                "content-type": "application/x-www-form-urlencoded"
            }
        }

        wx.request({
            url: config.baseUrl + url,
            data: params,
            method: method,
            header: {
                'Authorization': wx.getStorageSync('token'),
                ..._header
            },
            success: res => {

                // 将http请求返回的状态码（这个状态码是数字类型）获取
                // console.log(`res-->`, res.data.code)
                console.log(res.data.status)
                if (res.data.code === 0) {
                    res["$moment"] = moment;
                    console.log(res.data.status == 403)
            
                    return callback(res);
                }
                if (res.data.status === 403) {
                    return wx.Toast({
                        title: '请先登录',
                        duration: 2000,
                        icon: "error",
                        success: ()=>{
                            setTimeout(()=>{
                                wx.redirectTo({
                                  url: '/pages/login/login',
                                })
                            },2000)
                        }
                    })
                }
                let msg = res.data.msg;
                console.log(res.data.msg)
                return wx.showToast({
                    title: msg,
                    icon: "error",
                });


            },
            fail: err => {
                // 请求失败的处理  500开头的错误
                wx.showToast({
                    title: '请求失败',
                    icon: 'error'
                })
            }
        })
    }
}


// 最后将HTTP 请求返回
export {
    HTTP,
    Status_Code
}